Limpiar logs en Laravel (storage/logs/laravel.log, etc.)
Limpiar logs en Laravel (storage/logs/laravel.log, etc.). Si deseas eliminar los logs de Laravel, como storage/logs/laravel.log
, aquí tienes varias formas de hacerlo.
- Eliminar todos los logs con código (ej. desde un controlador o comando Artisan)
- Borrar solo un archivo específico (
laravel.log
) - Crear un comando Artisan para limpiar logs
A continuación, detallaremos 3 formas de hacerlo de manera fácil y consista usando el framework Laravel
Primera forma: Eliminar todos los logs con código
Esta opción podemos usarlo desde un controlador o comando Artisan.
use Illuminate\Support\Facades\File;
$logPath = storage_path('logs');
if (File::exists($logPath)) {
File::cleanDirectory($logPath); // Borra todos los archivos dentro de /logs
}
Esto no borra la carpeta, solo los archivos dentro de ella.
Segunda forma: Borrar solo un archivo específico (laravel.log
)
Podemos buscar el fichero o darle el nombre especifico para que Laravel lo elimine.
use Illuminate\Support\Facades\File;
$logFile = storage_path('logs/laravel.log');
if (File::exists($logFile)) {
File::delete($logFile);
}
Tercera forma: Crear un comando Artisan para limpiar logs
Vamos a crear un comando Artisan en Laravel para limpiar los logs del sistema. Este comando será muy útil para mantener limpio el archivo laravel.log
, que se encuentra en storage/logs/laravel.log
.
php artisan make:command ClearLogs
Luego en app/Console/Commands/ClearLogs.php
:
public function handle()
{
$logPath = storage_path('logs');
if (\File::exists($logPath)) {
\File::cleanDirectory($logPath);
$this->info('Logs eliminados exitosamente.');
} else {
$this->warn('No se encontró el directorio de logs.');
}
}
Y lo registras en app/Console/Kernel.php
para poder ejecutarlo con:
php artisan logs:clear
De esta simple manera podemos eliminar ficheros LOG que ocupan espacio en nuestro hosting.